package tt.dz.appserver.util.date;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间帮助类
 * <p> User: Xielf
 *
 */
public final class DateUtil {

	/** 年月日时分秒(无下划线) yyyyMMddHHmmss */
	public static final String dtLong = "yyyyMMddHHmmss";

	/** 完整时间 yyyy-MM-dd HH:mm:ss */
	public static final String simple = "yyyy-MM-dd HH:mm:ss";

	/** 年月日(无下划线) yyyyMMdd */
	public static final String dtShort = "yyyyMMdd";

	/**
	 * @return 以yyyyMMddHHmmss为格式的当前系统时间
	 */
	public static final String getDateTimeLong() {
		Date date = new Date();
		DateFormat df = new SimpleDateFormat(dtLong);
		return df.format(date);
	}

	/**
	 * 获取系统当前日期(精确到毫秒)，格式：yyyy-MM-dd HH:mm:ss
	 * 
	 * @return
	 */
	public static final String getDateTime() {
		Date date = new Date();
		DateFormat df = new SimpleDateFormat(simple);
		return df.format(date);
	}
	
	/**
	 * 格式化日期(精确到毫秒)，格式：yyyy-MM-dd HH:mm:ss
	 * 
	 * @return
	 */
	public static final String getDateTime(Date date) {
		DateFormat df = new SimpleDateFormat(simple);
		return df.format(date);
	}

	/**
	 * 获取系统当期年月日(精确到天)，格式：yyyyMMdd
	 * 
	 * @return
	 */
	public static final String getDate() {
		Date date = new Date();
		DateFormat df = new SimpleDateFormat(dtShort);
		return df.format(date);
	}
	
	/**
	 * 字符转时间 格式：yyyy-MM-dd HH:mm:ss
	 * @param str
	 * @return
	 */
	public static final Date parseStringToDateTime(String str){
		
		DateFormat df = new SimpleDateFormat(simple);
		try {
			return df.parse(str);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return new Date();
	}
	/**
	 * 字符转时间 格式：yyyy-MM-dd
	 * @param str
	 * @return
	 */
	public static final Date parseStringToDate(String str){
		
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		try {
			return df.parse(str);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return new Date();
	}
}
